11 - Inteligentna kamera
Wprowadzenie do przetwarzania obrazów
Politechnika Poznańska, Instytut Robotyki i Inteligencji Maszynowej
Ćwiczenie laboratoryjne 11: inteligentna kamera
Powrót do spisu treści ćwiczeń laboratoryjnych
Wstęp
Wraz z rozwojem konwolucyjnych sieci neuronowych i głębokiego uczenia maszynowego, zaczęło powstawać wiele urządzeń, które pozwalają przyspieszać wnioskowanie takich sieci. Urządzenia te cechują się najczęściej bardzo dobrym stosunkiem wydajności do poboru energii. Niektóre urządzenia przyjmują postać pendrive jak Intel NCS 2, a niektóre niewielkich dysków przenośnych jak Google Coral. Powstają obecnie również produkty, które nie tylko przyspieszają wnioskowanie, ale potrafią równocześnie rejestrować obraz.
Przykładem takiego produktu jest kamera OpenCV AI Kit: OAK—1, która potrafi nagrywać wideo w 4k@30fps i wyposażona jest w zintegrowane jednostki przetwarzające obraz Intel Myriad X. Podczas tego laboratorium, zostanie ona wykorzystana do zbudowania rzeczywistej aplikacji systemu wizyjnego.
Kolejnym przykładem jest kamera Luxonis OAK-D-LITE, która dodatkowo posiada wbudowany czujnik głębi. Dzięki temu możliwe jest wykrywanie obiektów w przestrzeni 3D.
Dane
Pobierz paczkę ze skryptami do zadań.
Zadanie
Podłącz kamerę Luxonis OAK-D-LITE do komputera. Uruchom program pozwalający na wizualizację głębi i inferencję sieci neuronowej, wpisując w terminalu:
depthai-viewerZaobserwuj działanie kamery. Zwróć uwagę na to, jakie informacje są wyświetlane na ekranie.
Zadanie
Wykorzystując klasyfikator z zajęć o sieciach neuronowych (instrukcja C), przygotuj odpowiednio model do wykorzystania jednostki wnioskującej w kamerze i uruchom aplikację wizualizującą.
Kroki:
Zmodyfikuj skrypt
00_convert_onnx_to_blob.pyustawiając ścieżkę do swojego modelu. Zwróć uwagę na nazwę pliku. Postaraj się zachować oryginalne nazewnictwoclf_resnet18.onnx.Uruchom skrypt. Jeśli wszystko się powiodło, w terminalu powinna pojawić się wiadomość:
Downloading ../_data/11/clf_resnet18_openvino_2021.4_5shave.blob... Success! Success! Model path: .../clf_resnet18_openvino_2021.4_5shave.blobZmodyfikuj w programie
scripts/11/01_own_classifier_infer.pyzmiennąlabelsustawiając własne etykiety klas.Podłącz kamerę OpenCV AI Kit: OAK—1 do komputera (podłącz kamerę mono; kamera stereo może nie działać poprawnie).
Uruchom program i zweryfikuj jego działanie korzystając z inteligentnej kamery. Przykładowe, docelowe działanie programu przedstawiono na filmie.
Zadania do samodzielnej realizacji
- Uruchom skrypt
scripts/11/gesture_recogniotion/main.pyi zweryfikuj działanie programu. - Twoim zadaniem jest sterowanie wirtualnym pojazdem z wykorzystaniem
gestów dłoni. Dlatego zmodyfikuj funkcję
recognize_gestureze skryptuscripts/11/gesture_recogniotion/Gesture.pyw taki sposób, żeby na podstawie gestu (odpowiedniego ułożenia palców dłoni) wykonywać jedną z 4 akcji:PASS(dłoń otwarta),ACTION(pięść zaciśnięta),LEFT(otwarty tylko palec wskazujący),RIGHT(otwarte dwa palce, tzw. Victoria).
UWAGA Wykorzystaj do tego informację o zgiętych
palcach. Zbuduj odpowiednie instrukcje warunkowe, które do zmiennej
r.gesture przypiszą odpowiednią akcję.
Przykładowe działanie programu przedstawiono na filmie.
Zadania dodatkowe
Zapoznaj się z innymi, przykładowymi programami stworzonymi do inteligentnej kamery przez programistów depthai. Może któreś zastosowanie cię zainteresowało? Sprawdź demo!